package iO;

import java.io.*;

/*对象流
对象流是一对高级流，主要功能是负责将Java对象与字节流进行相遇转换
向一个Java对象转换为一组可以存储或网络
对象输出流负责对象序列化
对象输入流负责对象反序列化
 */
public class OOsDemo {
    public static void main(String[] args) throws IOException {
        //需求： 将一个person对象写入到文件person.obj中保存

        String name = "张三";
        int age = 18;
        String gender = "男";
        String[] otherInfo = new String[]{"大","元","长"};
        Person person = new Person(name,age,gender,otherInfo);
        System.out.println(person);
        //文件流是一个低级流（节点流），负责将写出的字节存入文件中
        FileOutputStream out = new FileOutputStream("person.obj");
        //高级流的构造器要求传入一个流，用于将当前高级流链接在自定义流上
        ObjectOutputStream oos = new ObjectOutputStream(out);
        oos.writeObject(person);
        oos.close();
    }
}
